# @Time : 2024-10-24 16:01
# @Author : Fioman 
# @Phone : 13149920693
"""
Python列表拼接 可以使用 + 以及 += 还有extend,先说结论:
"""
lst = [1, 2, 3]
lstAdded = lst + [4, 5]
# lstAdded = lst + (4, 5)  # 这里就报错了 ,因为不支持元组,加法只支持都是列表的情况
"""
def __add__(self, other):
        if not isinstance(other, list):
            raise TypeError("can only concatenate list (not '{}') to list".format(type(other).__name__))
        return self.data + other
"""
print(lstAdded)

lst = [1, 2, 3]
lst += [4, 5]  # 就地修改
print(lst)
lst += (6, 7)  # 因为+= 重载了 __iadd__()方法,而__iadd__方法直接就调用了self.data.extend(other)
# 也没有检测类型是否是list,只要是可以迭代都是可以的
# lst += 3 # 但是这样就不行,3不可以迭代

lst.extend({8, 9})  # 集合也是可以迭代的,extend 其实就是调用了for循环一个个的将元素添加到lst中去
print(lst)

res = lst.extend({"key1": "value1", "key2": "value2"})
print(res)  # None 注意extend的返回值是None
print(lst)  # 这里的字典,只会将键添加
